#ifndef BFS_H
#define BFS_H

#include <string>
#include <thrust/device_vector.h>
using namespace std;

// create adjacecy list using random sample and output to output_file
void BFS_init(int n,int m,string output_file);
// read adjacency list from output_File
void BFS_init(string output_file);
void clean();
void print_adj_matrix();
void print_neighbours(int node);
void BFS(int root);

class BFS_GPU{
public:
	BFS_GPU(int n);
	~BFS_GPU(){delete test_dvec;};
	void print(int i);


private:
	thrust::device_vector<int>* test_dvec;
};

#endif